<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>对象的序列化</title>
    <script>
        /* 
            对象的序列化
                JS中的对象使用时，都是存在于计算机的内存中的

            序列化指将对象转化为一个可以存储的格式。
                在JS中的序列化通常是将一个对象转化为字符串。
            
            序列化的作用？（对象转为字符串有什么用？）
                对象转为字符串之后，可以将字符串在不同的语言之间传递，甚至人可以直接对字符串进行读写操作，使得JS对象可以在不同的语言之间传递。
            
                序列化用途
                    1.做为数据交换的格式。
                    2.用来配置文件
            
            如何进行序列化？
                在JS由一个工具类JSON(javaScript Object Notation)JS对象表示法

                JS对象序列化后会转为一个字符串，这个字符串我们称为JSON字符串。

                JOSN.stringify(对象)，可以将一个对象转为JSON字符串

            JSON字符串转为JS对象
                JSON.parse(JSON字符串)  

            也可以手动的编写JSON字符串,在很多程序的配置文件就是JSON编写的。

            编写JSON的注意事项
                1.JSON字符串有两种格式
                    JSON对象：{}
                    JSON数组：[]
                2.JSON字符串的属性名必须使用双引号引起来。
                3.JSON可以使用的属性值和元素
                    -可以使用数字(Number)
                    -BigInt,Undefined，函数不能使用
                    -字符串(String),字符串必须使用双引号。
                    -布尔值(Boolean)
                    -空值(Null)
                    -对象(Object)
                    -数组(Array)
                4.JSON的格式和JS对象的格式基本上时一致的
                    注意：JSON字符串如果属性中的最后一个，不要加，

        */
       const obj={
        name:'孙悟空',
        age:18,
       }

       // 将这个obj对象转为JOSN字符串

       const str=JSON.stringify(obj)
       console.log(obj)
       console.log(str) //{"name":"孙悟空","age":18}

       // 将一个JSON格式的字符串转为JS对象
       const obj2=JSON.parse(str)
       console.log(obj2)

       // 手动的编写JSON字符串
       const str2='{"name":"猪八戒","age":18}'
       const obj3=JSON.parse(str2)
       console.log(obj3)
    </script>
</head>
<body>
    
</body>
</html>